﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Helena.Areas.Categorias;
using Helena.Areas.Campanas.Models;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using Helena.Areas.Categorias.Models;

namespace Helena.Areas.Productos.Models
{
    public class ProductoView
    {
        public int ID { get; set; }

        [Required]
        [DisplayName("Disponible")]
        public bool Estado { get; set; }

        [Required]
        [DisplayName("Presentacion")]
        public int unidadID { get; set; }
        
        [Required]
        [DisplayName("Categoria")]
        public int categoriaID { get; set; }
        
        [Required]
        [DisplayName("Campaña")]
        public int campanaID { get; set; }

        [Required]
        [DisplayName("Proveedor")]
        public int proveedorID { get; set; }
        
        [Required, StringLength(100)]
        [DisplayName("Nombre del Producto")]
        public string Descripcion { get; set; }

        [Required]
        [DisplayName("Precio Fabrica")]
        public decimal preciofabrica { get; set; }

        [Required]
        [DisplayName("Precio Venta")]
        public decimal precioventa { get; set; }

        [Required]
        [DisplayName("Stock")]
        public double cantidad { get; set; }

        public ProductoView() { Descripcion = " "; Estado = true; cantidad = 0; proveedorID = 1; }
        public ProductoView(Producto producto) 
        {
            this.ID = producto.ID;
            this.Estado = producto.Estado;
            this.categoriaID = producto.categoriaID;
            this.campanaID = producto.campanaID ;
            this.proveedorID = producto.proveedorID;
            this.Descripcion = producto.Descripcion;
            this.preciofabrica = producto.preciofabrica;
            this.precioventa = producto.precioventa;
            this.cantidad = producto.cantidad;
            this.unidadID = producto.unidadID;
        }

        public Producto deserializa(InterfazLogicaProducto logica)
        {
            return new Producto
            {
                ID = this.ID,
                Estado = this.Estado,
                categoriaID = this.categoriaID,
                campanaID = this.campanaID,
                proveedorID = this.proveedorID,
                Descripcion= this.Descripcion,
                preciofabrica= this.preciofabrica,
                precioventa= this.precioventa,
                cantidad= this.cantidad,
                unidadID = this.unidadID
            };
        }
    }
}